/**
 * 
 */
package presentadores;

import icore.ICoreLogin;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.UnknownHostException;
import java.rmi.RemoteException;

import javax.jms.JMSException;

import configuraciones.EnumLogin;
import Iview.IFormLogin;

/**
 * @author Elkin Torres
 * 
 */
public class presenterLogin implements ActionListener {
	/**
	 * 
	 */
	private IFormLogin view;
	private ICoreLogin model;

	/**
	 * @param view
	 *            the view to set
	 */
	public void setView(IFormLogin view) {
		this.view = view;
		this.view.accionIngresar(this);
		this.view.accionRegistrar(this);
	}

	/**
	 * @param model
	 *            the model to set
	 */
	public void setModel(ICoreLogin model) {
		this.model = model;
	}

	private void validarLogin() throws UnknownHostException, JMSException,
			RemoteException, MalformedURLException {
		model.validarUsuario(view.getUsuario(), view.getPassword(), InetAddress
				.getLocalHost().getHostAddress());
	}

	private void registrarUsuario() {
		view.mostrarMensaje(2, "Modulo en construcci�n");
	}

	public void navegarFormulario(Boolean acceso) {
		if (acceso) {
			view.navegarGestionRemota();
		} else {
			view.mostrarMensaje(1, "usuario o contraseña incorrectos");
		}
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		String comando = e.getActionCommand();
		
		if (comando.equals(EnumLogin.BOTON_INGRESO.getDescripcion())) {
			try {
				validarLogin();
			} catch (UnknownHostException | JMSException | RemoteException
					| MalformedURLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
				view.mostrarMensaje(0, e1.getMessage());
			}
		} else if (comando.equals(EnumLogin.BOTON_REGISTRAR.getDescripcion())) {
			registrarUsuario();
		}
	}

}
